using Lzfy_His_Service.Models;

namespace Lzfy_His_Service.Repositories
{
    public interface IRoleRepository
    {
        Task<RoleListResponse> GetRoleListAsync(RoleListRequest request);
        Task<Role?> GetRoleByIdAsync(int id);
        Task<Role?> GetRoleByCodeAsync(string roleCode);
        Task<int> AddRoleAsync(Role role);
        Task<bool> UpdateRoleAsync(Role role);
        Task<bool> DeleteRoleAsync(int id);
        Task<bool> ToggleRoleStatusAsync(int id, bool isActive);
        Task<List<RoleDto>> GetAllActiveRolesAsync();
        Task<bool> RoleCodeExistsAsync(string roleCode, int? excludeId = null);
    }
}